262B - Roma and Changing Signs - CodeForces Solution


greedy *1200

Please click on ads to support us..

Python Code:

n, changes = map(int, input().split())
incomes = sorted(list(map(int, input().split())))

diff = 0

i = 0
while i < len(incomes) and incomes[i] <= 0 and changes > 0 :
    diff += (incomes[i] * -2)
    changes -= 1
    i += 1

if changes % 2 == 1:
    diff -= abs(sorted(incomes, key=lambda l: abs(l))[0]) * 2
print(sum(incomes) + diff)

C++ Code:

 #include <bits/stdc++.h>
#define ll long long
using namespace std;

int main()
{ios_base::sync_with_stdio(false);
    cin.tie(NULL);
int x,m;
cin>>x>>m;
int arr[x];
for(int i=0;i<x;i++){
    cin>>arr[i];
}
int count=0;
ll sum=0;
bool flag=0,cn;
sort(arr,arr+x);
    int mx=1e9,idx;
        for(int i=0;i<x;i++){
            if(arr[i]<0&&count!=m){
                arr[i]*=-1;
                count++;
            }
        if(mx>arr[i]){
            mx=arr[i];
            idx=i;
            //cout<<idx;
            }
            //cout<<arr[i]<<" ";
        }

        if((m-count)%2){
                arr[idx]*=-1;
        }
    for(int i=0;i<x;i++){
        sum+=arr[i];
    }



cout<<sum;

}




Comments

Submit
0 Comments
More Questions

1669D - Colorful Stamp
1669B - Triple
1669A - Division
1669H - Maximal AND
1669E - 2-Letter Strings
483A - Counterexample
3C - Tic-tac-toe
1669F - Eating Candies
1323B - Count Subrectangles
991C - Candies
1463A - Dungeon
1671D - Insert a Progression
1671A - String Building
1671B - Consecutive Points Segment
1671C - Dolce Vita
1669G - Fall Down
4D - Mysterious Present
1316B - String Modification
1204A - BowWow and the Timetable
508B - Anton and currency you all know
1672A - Log Chopping
300A - Array
48D - Permutations
677C - Vanya and Label
1583B - Omkar and Heavenly Tree
1703C - Cypher
1511C - Yet Another Card Deck
1698A - XOR Mixup
1702E - Split Into Two Sets
1703B - ICPC Balloons